#include "BlackDeath.Core.h"

namespace BlackDeath
{
	namespace Graphics
	{
		class CVertexBuffer
		{
			private:
			#pragma region Variables
				CGraphicsDevice* m_pGraphicsDevice;
				D3D10_USAGE m_eBufferUsage;
				ID3D10Buffer* m_iBuffer;
				D3D10_INPUT_ELEMENT_DESC* m_aVertexElements;
				int m_iLength;
				int m_iStride;
			#pragma endregion

			#pragma region Options
				void UpdateBuffer(void* data);
				void CreateBuffer(void* data);
			#pragma endregion

			public:
			#pragma region Constrcutor and Destructor
				CVertexBuffer(CGraphicsDevice*, int, int, D3D10_USAGE);
				~CVertexBuffer();
			#pragma endregion

			#pragma region Methods
				void SetData(void*);
				int Get_SizeInBytes();
				int Get_Length();
			#pragma endregion

			friend class CGraphicsDevice;
		};
	}
}